package com.zb.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 出库表
 * </p>
 *
 * @author WEN
 * @since 2024-01-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="ZjStoreOutbound对象", description="出库表")
public class ZjStoreOutbound implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主健ID")
    private Long id;

    @ApiModelProperty(value = "商家ID")
    private Long custAccId;

    @ApiModelProperty(value = "出库单单号")
    private String code;

    @ApiModelProperty(value = "状态：1-待审核，2-待出库/待发货，3-驳回，4-已完成，5-已作废")
    private Integer status;

    @ApiModelProperty(value = "仓储类型表ID")
    private Long typeId;

    @ApiModelProperty(value = "仓库类型：0-内部仓库，1-服务商-外部仓库，2-工程师-外部仓库")
    private Integer storeType;

    @ApiModelProperty(value = "单据来源：1-系统单，2-工单，3-ERP单据，4-仓库移动端单据，5-第三方系统单据")
    private Integer source;

    @ApiModelProperty(value = "预计出库时间")
    private Date estimateTime;

    @ApiModelProperty(value = "出库备注")
    private String remark;

    @ApiModelProperty(value = "审核人员ID")
    private Long reviewEmpId;

    @ApiModelProperty(value = "审核人员")
    private String reviewEmp;

    @ApiModelProperty(value = "审核时间")
    private Date reviewTime;

    @ApiModelProperty(value = "审核备注")
    private String reviewRemark;

    @ApiModelProperty(value = "驳回人员ID")
    private Long rejectEmpId;

    @ApiModelProperty(value = "驳回人员")
    private String rejectEmp;

    @ApiModelProperty(value = "驳回时间")
    private Date rejectTime;

    @ApiModelProperty(value = "驳回备注")
    private String rejectRemark;

    @ApiModelProperty(value = "出库/发货人员ID")
    private Long sendGoodsEmpId;

    @ApiModelProperty(value = "出库/发货人员")
    private String sendGoodsEmp;

    @ApiModelProperty(value = "出库/发货时间")
    private Date sendGoodsTime;

    @ApiModelProperty(value = "出库/发货备注")
    private String sendGoodsRemark;

    @ApiModelProperty(value = "作废人员ID")
    private Long cancelEmpId;

    @ApiModelProperty(value = "作废人员")
    private String cancelEmp;

    @ApiModelProperty(value = "作废时间")
    private Date cancelTime;

    @ApiModelProperty(value = "作废备注")
    private String cancelRemark;

    @ApiModelProperty(value = "关闭单据人员ID")
    private Long closeEmpId;

    @ApiModelProperty(value = "关闭单据人员")
    private String closeEmp;

    @ApiModelProperty(value = "关闭单据时间")
    private Date closeTime;

    @ApiModelProperty(value = "关闭单据备注")
    private String closeRemark;

    @ApiModelProperty(value = "是否已回退库存：0-否，1-是")
    @TableField("is_back_inventory")
    private Boolean backInventory;

    @ApiModelProperty(value = "回退库存时间")
    private Date backInventoryTime;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmtUpdate;

    @ApiModelProperty(value = "创建人员ID")
    private Long createEmpId;

    @ApiModelProperty(value = "创建人员")
    private String createEmp;

    @ApiModelProperty(value = "更新人员ID")
    private Long updateEmpId;

    @ApiModelProperty(value = "更新人员")
    private String updateEmp;


}
